Summary of Pick Objects
C Summary
Constants
#define kQ3ReturnAllHits 0Pick Object Types
#define kQ3PickTypeWindowPoint Q3_OBJECT_TYPE('p','k','w','p') #define kQ3PickTypeWindowRect Q3_OBJECT_TYPE('p','k','w','r')Shape Part and Mesh Part Types
#define kQ3ShapePartTypeMeshPart Q3_OBJECT_TYPE('s','p','m','h') #define kQ3MeshPartTypeMeshFacePart Q3_OBJECT_TYPE('m','f','a','c') #define kQ3MeshPartTypeMeshEdgePart Q3_OBJECT_TYPE('m','e','d','g') #define kQ3MeshPartTypeMeshVertexPart Q3_OBJECT_TYPE('m','v','t','x')Hit List Sorting Values
typedef enum TQ3PickSort { kQ3PickSortNone, kQ3PickSortNearToFar, kQ3PickSortFarToNear } TQ3PickSort;Hit Information Masks
typedef enum TQ3PickDetailMasks { kQ3PickDetailNone = 0, kQ3PickDetailMaskPickID = 1 << 0, kQ3PickDetailMaskPath = 1 << 1, kQ3PickDetailMaskObject = 1 << 2, kQ3PickDetailMaskLocalToWorldMatrix = 1 << 3, kQ3PickDetailMaskXYZ = 1 << 4, kQ3PickDetailMaskDistance = 1 << 5, kQ3PickDetailMaskNormal = 1 << 6, kQ3PickDetailMaskShapePart = 1 << 7} TQ3PickDetailMasks;Pick Parts Values
typedef enum TQ3PickPartsMasks { kQ3PickPartsObject = 0, kQ3PickPartsMaskFace = 1 << 0, kQ3PickPartsMaskEdge = 1 << 1, kQ3PickPartsMaskVertex = 1 << 2 } TQ3PickPartsMasks;Data Types
typedef unsigned long TQ3PickDetail; typedef unsigned long TQ3PickParts; typedef TQ3ShapePartObject TQ3MeshPartObject; typedef TQ3MeshPartObject TQ3MeshFacePartObject; typedef TQ3MeshPartObject TQ3MeshEdgePartObject; typedef TQ3MeshPartObject TQ3MeshVertexPartObject;Pick Data Structure
typedef struct TQ3PickData { TQ3PickSort sort; TQ3PickDetail mask; unsigned long numHitsToReturn; } TQ3PickData;Window-Point Pick Data Structure
typedef struct TQ3WindowPointPickData { TQ3PickData data; TQ3Point2D point; float vertexTolerance; float edgeTolerance; } TQ3WindowPointPickData;Window-Rectangle Pick Data Structure
typedef struct TQ3WindowRectPickData { TQ3PickData data; TQ3Area rect; } TQ3WindowRectPickData;Hit Path Structure
typedef struct TQ3HitPath { unsigned long depth; TQ3GroupPosition *positions; } TQ3HitPath;Hit Data Structure
typedef struct TQ3HitData { TQ3PickParts part; TQ3PickDetail validMask; unsigned long pickID; TQ3HitPath path; TQ3Object object; TQ3Matrix4x4 localToWorldMatrix; TQ3Point3D xyzPoint; float distance; TQ3Vector3D normal; TQ3ShapePartObject shapePart; } TQ3HitData;Pick Objects Routines
Managing Pick Objects
TQ3ObjectType Q3Pick_GetType(TQ3PickObject pick); TQ3Status Q3Pick_GetData(TQ3PickObject pick, TQ3PickData *data); TQ3Status Q3Pick_SetData(TQ3PickObject pick, const TQ3PickData *data); TQ3Status Q3Pick_GetVertexTolerance ( TQ3PickObject pick, float *vertexTolerance); TQ3Status Q3Pick_SetVertexTolerance ( TQ3PickObject pick, float vertexTolerance); TQ3Status Q3Pick_GetEdgeTolerance ( TQ3PickObject pick, float *edgeTolerance); TQ3Status Q3Pick_SetEdgeTolerance ( TQ3PickObject pick, float edgeTolerance); TQ3Status Q3Pick_GetNumHits(TQ3PickObject pick, unsigned long *numHits); TQ3Status Q3Pick_GetHitData(TQ3PickObject pick, unsigned long index, TQ3HitData *hitData); TQ3Status Q3Hit_EmptyData(TQ3HitData *hitData); TQ3Status Q3Pick_EmptyHitList(TQ3PickObject pick);Managing Shape Parts and Mesh Parts
TQ3Status Q3ShapePart_GetShape(TQ3ShapePartObject shapePartObject, TQ3ShapeObject *shapeObject); TQ3ObjectType Q3ShapePart_GetType ( TQ3ShapePartObject shapePartObject); TQ3ObjectType Q3MeshPart_GetType ( TQ3MeshPartObject meshPartObject); TQ3Status Q3MeshPart_GetComponent ( TQ3MeshPartObject meshPartObject, TQ3MeshComponent *component); TQ3Status Q3MeshFacePart_GetFace ( TQ3MeshFacePartObject meshFacePartObject, TQ3MeshFace *face); TQ3Status Q3MeshEdgePart_GetEdge ( TQ3MeshEdgePartObject meshEdgePartObject, TQ3MeshEdge *edge); TQ3Status Q3MeshVertexPart_GetVertex ( TQ3MeshVertexPartObject meshVertexPartObject, TQ3MeshVertex *vertex);Picking With Window Points
TQ3PickObject Q3WindowPointPick_New ( const TQ3WindowPointPickData *data); TQ3Status Q3WindowPointPick_GetPoint ( TQ3PickObject pick, TQ3Point2D *point); TQ3Status Q3WindowPointPick_SetPoint ( TQ3PickObject pick, const TQ3Point2D *point); TQ3Status Q3WindowPointPick_GetData ( TQ3PickObject pick, TQ3WindowPointPickData *data); TQ3Status Q3WindowPointPick_SetData ( TQ3PickObject pick, const TQ3WindowPointPickData *data);Picking With Window Rectangles
TQ3PickObject Q3WindowRectPick_New ( const TQ3WindowRectPickData *data); TQ3Status Q3WindowRectPick_GetRect ( TQ3PickObject pick, TQ3Area *rect); TQ3Status Q3WindowRectPick_SetRect ( TQ3PickObject pick, const TQ3Area *rect); TQ3Status Q3WindowRectPick_GetData ( TQ3PickObject pick, TQ3WindowRectPickData *data); TQ3Status Q3WindowRectPick_SetData ( TQ3PickObject pick, const TQ3WindowRectPickData *data);Warnings
kQ3WarningPickParamOutside